package PriorityQueueTest;

import java.util.PriorityQueue;

/**
 * Created with IntelliJ IDEA.
 * Description:优先级队列接口的使用
 * User: 阿宾
 * Date: 2024-12-08
 * Time: 09:09
 */
public class Test1 {
    public static void main(String[] args) {

        //PriorityQueue的构造方法
        //1.空参构造:创建一个初始化内存为11的空间
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
        //插入元素
        priorityQueue.offer(10);
        priorityQueue.offer(3);
        priorityQueue.offer(1);
        priorityQueue.offer(5);
        priorityQueue.offer(8);

        //插入时自动调整为小根堆

        //获取优先级最高元素，也就是堆顶元素
        System.out.println(priorityQueue.peek());

        //删除优先级最高元素，也就是删除堆顶元素
        System.out.println(priorityQueue.poll());
        //再次查看优先级最高元素
        System.out.println(priorityQueue.peek());

        //查看有效元素个数
        System.out.println(priorityQueue.size());

        //判断优先级队列是否为空
        System.out.println(priorityQueue.isEmpty());

        //清空优先级队列
        priorityQueue.clear();
        //查看元素个数
        System.out.println(priorityQueue.size());
        //判断优先级队列是否为空
        System.out.println(priorityQueue.isEmpty());


        /*//2.指定存储空间
        PriorityQueue<Integer> priorityQueue1 = new PriorityQueue<>(100);

        //3.指定集合创建优先级队列
        ArrayList<Integer> list = new ArrayList<>();
        list.add(10);
        list.add(4);
        list.add(1);
        list.add(8);
        //此时已经根基10 4 1 8将其创建为一个小根堆
        PriorityQueue<Integer> priorityQueue2 = new PriorityQueue<>(list);
        System.out.println(priorityQueue2.peek());*/
    }
}
